package com.cgc999.host.base;

import android.app.Application;

import com.cgc999.host.config.ApiConfig;
import com.cgc999.host.config.Constant;
import com.cgc999.host.config.SslSocketConfigure;

import org.xutils.x;

import java.util.HashMap;
import java.util.Map;

public class BaseApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        x.Ext.init(this);
        createNetConfig();
    }

    /**
     * 网络请求初始化
     */
    public void createNetConfig() {
        Map<String, String> headMap = new HashMap<>();
        headMap.put("key1", "value1");
        headMap.put("key2", "value2");
        headMap.put("key3", "value3");

        SslSocketConfigure sslSocketConfigure = new SslSocketConfigure.Builder()
                .setVerifyType(2)//单向双向验证 1单向  2 双向
                .setClientPriKey("client.bks")//客户端keystore名称
                .setTrustPubKey("truststore.bks")//受信任密钥库keystore名称
                .setClientBKSPassword("123456")//客户端密码
                .setTruststoreBKSPassword("123456")//受信任密钥库密码
                .setKeystoreType("BKS")//客户端密钥类型
                .setProtocolType("TLS")//协议类型
                .setCertificateType("X.509")//证书类型
                .build();

        ApiConfig build = new ApiConfig.Builder()
                .setBaseUrl(Constant.BaseUrl)//BaseUrl，这个地方加入后项目中默认使用该url
                .setInvalidToken(0)//Token失效码
                .setSucceedCode(200)//成功返回码  NBA的测试返回成功code为0  上传图片返回code为200 由于是不同接口 请大家注意
                .setTokenInvalidFilter("com.mp5a5.quit.tokenInvalidBroadcastFilter")//失效广播Filter设置
                .setQuitCode(200)//退出app码
                .setTokenInvalidFilter("com.mp5a5.quit.quitAppBroadcastFilter")//失效广播Filter设置
                //.setDefaultTimeout(2000)//响应时间，可以不设置，默认为2000毫秒
                .setHeads(headMap)//动态添加的header，也可以在其他地方通过ApiConfig.setHeads()设置
                //.setOpenHttps(true)//开启HTTPS验证
                //.setSslSocketConfigure(sslSocketConfigure)//HTTPS认证配置
                .build();
        build.init(this);
    }
}
